/*
 * Commissiong_test.h
 *
 *  Created on: 2023年7月31日
 *      Author: fjx
 */

#ifndef DS_TEST_COMMISSIONG_TEST_H_
#define DS_TEST_COMMISSIONG_TEST_H_
#include "mac/RBFCommon.h"


typedef enum{
  EN_COMMISSIONG_IDLE,
  EN_COMMISSIONG_JOIN_NODE_PAGING_BUILD_PACKET,
  EN_COMMISSIONG_JOIN_NODE_PAGING_NET_AE,
  EN_COMMISSIONG_JOIN_NODE_PAGING_NET_DATA,  //往net层发送；测试时，进行数据copy
  EN_COMMISSIONG_JOIN_NODE_PAGING_NET_DE,
  EN_COMMISSIONG_JOIN_NODE_PAGING_PACKET_PARSE,


  EN_COMMISSIONG_GW_ALLOW_JOIN_NET_BUILD_PACKET,
  EN_COMMISSIONG_GW_ALLOW_JOIN_NET_NET_AE,
  EN_COMMISSIONG_GW_ALLOW_JOIN_NET_NET_DATA,
  EN_COMMISSIONG_GW_ALLOW_JOIN_NET_NET_DE,
  EN_COMMISSIONG_GW_ALLOW_JOIN_NET_PACKET_PARSE,

  EN_COMMISSIONG_JOIN_CONFIRM_BUILD_PACKECT,
  EN_COMMISSIONG_JOIN_CONFIRM_NET_AE,
  EN_COMMISSIONG_JOIN_CONFIRM_NET_DATA,
  EN_COMMISSIONG_JOIN_CONFIRM_NET_DE,
  EN_COMMISSIONG_JOIN_CONFIRM_PACKECT_PARSE,
  EN_COMMISSIONG_JOIN_CONFIRM_SUCCESS,



}COMMISSIONG_STATUS_EN;


typedef struct{
  uint8_t mac[8];
  uint8_t deviceType;
  uint8_t rfmid;
  uint8_t codeA[RBF_KEY_LENGTH_MAX];
  uint8_t codeAB[RBF_KEY_LENGTH_MAX];
}node_join_info_t;

#define DATA_LINK_LENGTH              255
typedef struct{
  uint8_t down[DATA_LINK_LENGTH];
  uint8_t up[DATA_LINK_LENGTH];
}packet_t;

typedef struct{
  COMMISSIONG_STATUS_EN status;
//  uint8_t packet[255];
  //RFM
  uint8_t rfmid;
  uint8_t codeB[RBF_KEY_LENGTH_MAX];
  packet_t rfm;

  //HUB
  node_join_info_t join_info;
  packet_t hub;
}join_t;

void Commissiong_Init (void);

#endif /* DS_TEST_COMMISSIONG_TEST_H_ */
